home *** CD-ROM | disk | FTP | other *** search
/ Micromanía 92 / CDMM92_1.ISO / SOF 2 SDK / sof2sdk-101.msi / _92D6AC311BB48EBA344BBABC89DA6AB0 / _0C0F0DE63A0D4340B8377F1969599E9F < prev    next >
Encoding:
Text File  |  2002-06-21  |  9.7 KB  |  442 lines

  1. // Copyright (C) 2001-2002 Raven Software.
  2. //
  3. // cg_public.h --
  4.  
  5. /*
  6. ==================================================================
  7.  
  8. functions imported from the main executable
  9.  
  10. ==================================================================
  11. */
  12.  
  13. #define    CGAME_IMPORT_API_VERSION    4
  14.  
  15. typedef enum 
  16. {
  17.     CG_PRINT,
  18.     CG_ERROR,
  19.     CG_MILLISECONDS,
  20.     CG_CVAR_REGISTER,
  21.     CG_CVAR_UPDATE,
  22.     CG_CVAR_SET,
  23.     CG_CVAR_VARIABLESTRINGBUFFER,
  24.     CG_ARGC,
  25.     CG_ARGV,
  26.     CG_ARGS,
  27.     CG_FS_FOPENFILE,
  28.     CG_FS_READ,
  29.     CG_FS_WRITE,
  30.     CG_FS_FCLOSEFILE,
  31.     CG_FS_GETFILELIST,
  32.     CG_SENDCONSOLECOMMAND,
  33.     CG_ADDCOMMAND,
  34.     CG_SENDCLIENTCOMMAND,
  35.     CG_UPDATESCREEN,
  36.     CG_RMG_INIT,
  37.     CG_CM_LOADMAP,
  38.     CG_CM_NUMINLINEMODELS,
  39.     CG_CM_INLINEMODEL,
  40.     CG_CM_LOADMODEL,
  41.     CG_CM_TEMPBOXMODEL,
  42.     CG_CM_POINTCONTENTS,
  43.     CG_CM_TRANSFORMEDPOINTCONTENTS,
  44.     CG_CM_BOXTRACE,
  45.     CG_CM_TRANSFORMEDBOXTRACE,
  46.     CG_CM_MARKFRAGMENTS,
  47.     CG_S_STARTSOUND,
  48.     CG_S_STOPALLSOUNDS,
  49.     CG_S_STARTLOCALSOUND,
  50.     CG_S_CLEARLOOPINGSOUNDS,
  51.     CG_S_ADDLOOPINGSOUND,
  52.     CG_S_UPDATEENTITYPOSITION,
  53.     CG_S_RESPATIALIZE,
  54.     CG_S_REGISTERSOUND,
  55.     CG_S_STARTBACKGROUNDTRACK,
  56.     CG_AS_ADDPRECACHEENTRY,
  57.     CG_AS_PARSESETS,
  58.     CG_AS_UPDATEAMBIENTSET,
  59.     CG_AS_ADDLOCALSET,
  60.     CG_AS_GETBMODELSOUND,
  61.     CG_R_LOADWORLDMAP,
  62.     CG_R_REGISTERMODEL,
  63.     CG_R_REGISTERSKIN,
  64.     CG_R_REGISTERSHADER,
  65.     CG_R_CLEARSCENE,
  66.     CG_R_CLEARDECALS,
  67.     CG_R_ADDREFENTITYTOSCENE,
  68.     CG_R_ADDPOLYTOSCENE,
  69.     CG_R_ADDDECALTOSCENE,
  70.     CG_R_ADDLIGHTTOSCENE,
  71.     CG_R_RENDERSCENE,
  72.     CG_R_DRAWVISUALOVERLAY,
  73.     CG_R_SETCOLOR,
  74.     CG_R_DRAWSTRETCHPIC,
  75.     CG_R_MODELBOUNDS,
  76.     CG_R_LERPTAG,
  77.     CG_R_DRAWROTATEPIC,
  78.     CG_R_DRAWROTATEPIC2,
  79.     CG_R_DRAWTEXT,
  80.     CG_R_DRAWTEXTWITHCURSOR,
  81.     CG_R_GETTEXTWIDTH,
  82.     CG_R_GETTEXTHEIGHT,
  83.     CG_GETGLCONFIG,
  84.     CG_GETGAMESTATE,
  85.     CG_GETCURRENTSNAPSHOTNUMBER,
  86.     CG_GETSNAPSHOT,
  87.     CG_GETDEFAULTSTATE,
  88.     CG_GETSERVERCOMMAND,
  89.     CG_GETCURRENTCMDNUMBER,
  90.     CG_GETUSERCMD,
  91.     CG_SETUSERCMDVALUE,
  92.     CG_RW_SETTEAM,
  93.     CG_RESETAUTORUN,
  94.     CG_R_REGISTERSHADERNOMIP,
  95.     CG_MEMORY_REMAINING,
  96.     CG_R_REGISTERFONT,
  97.     CG_KEY_ISDOWN,
  98.     CG_KEY_GETCATCHER,
  99.     CG_KEY_SETCATCHER,
  100.     CG_KEY_GETKEY,
  101.      CG_PC_ADD_GLOBAL_DEFINE,
  102.     CG_PC_LOAD_SOURCE,
  103.     CG_PC_FREE_SOURCE,
  104.     CG_PC_READ_TOKEN,
  105.     CG_PC_SOURCE_FILE_AND_LINE,
  106.     CG_PC_LOAD_GLOBAL_DEFINES,
  107.     CG_PC_REMOVE_ALL_GLOBAL_DEFINES,
  108.  
  109.     CG_MEMSET = 100,
  110.     CG_MEMCPY,
  111.     CG_STRNCPY,
  112.     CG_SIN,
  113.     CG_COS,
  114.     CG_ATAN2,
  115.     CG_SQRT,
  116.     CG_ANGLEVECTORS,
  117.     CG_PERPENDICULARVECTOR,
  118.     CG_FLOOR,
  119.     CG_CEIL,
  120.     CG_TESTPRINTINT,
  121.     CG_TESTPRINTFLOAT,
  122.     CG_ACOS,
  123.     CG_ASIN,
  124.     CG_MATRIXMULTIPLY,
  125.  
  126.     
  127.     CG_SP_GETSTRINGTEXTSTRING,
  128.  
  129.     CG_S_STOPBACKGROUNDTRACK,
  130.     CG_REAL_TIME,
  131.     CG_SNAPVECTOR,
  132.     CG_REMOVECOMMAND,
  133.     CG_R_LIGHTFORPOINT,
  134.     CG_CIN_PLAYCINEMATIC,
  135.     CG_CIN_STOPCINEMATIC,
  136.     CG_CIN_RUNCINEMATIC,
  137.     CG_CIN_DRAWCINEMATIC,
  138.     CG_CIN_SETEXTENTS,
  139.     CG_R_REMAP_SHADER,
  140.     CG_R_GET_LIGHT_STYLE,
  141.     CG_R_SET_LIGHT_STYLE,
  142.     CG_FX_ADDLINE,
  143.     CG_S_ADDREALLOOPINGSOUND,
  144.     CG_S_STOPLOOPINGSOUND,
  145.  
  146.     CG_CM_TEMPCAPSULEMODEL,
  147.     CG_CM_CAPSULETRACE,
  148.     CG_CM_TRANSFORMEDCAPSULETRACE,
  149.     CG_R_ADDADDITIVELIGHTTOSCENE,
  150.     CG_GET_ENTITY_TOKEN,
  151.     CG_R_ADDPOLYSTOSCENE,
  152.     CG_R_INPVS,
  153.  
  154.     CG_FX_REGISTER_EFFECT,
  155.     CG_FX_PLAY_SIMPLE_EFFECT,
  156.     CG_FX_PLAY_EFFECT,
  157.     CG_FX_PLAY_ENTITY_EFFECT,
  158.     CG_FX_PLAY_SIMPLE_EFFECT_ID,
  159.     CG_FX_PLAY_EFFECT_ID,
  160.     CG_FX_PLAY_ENTITY_EFFECT_ID,
  161.     CG_FX_PLAY_BOLTED_EFFECT_ID,
  162.     CG_FX_ADD_SCHEDULED_EFFECTS,
  163.     CG_FX_INIT_SYSTEM,
  164.     CG_FX_FREE_SYSTEM,
  165.     CG_FX_ADJUST_TIME,
  166.     CG_FX_DRAW_2D_EFFECTS,
  167.     CG_FX_RESET,
  168.  
  169.     CG_G2_LISTBONES,
  170.     CG_G2_LISTSURFACES,
  171.  
  172.     CG_G2_ADDBOLT,
  173.     CG_G2_SETBOLTON,
  174.     CG_G2_REMOVEBOLT,
  175.     CG_G2_ATTACHG2MODEL,
  176.     CG_G2_DETACHG2MODEL,
  177.  
  178.     CG_G2_HAVEWEGHOULMODELS,
  179.     CG_G2_SETMODELS,
  180.     CG_G2_GETBOLT,
  181.     CG_G2_INITGHOUL2MODEL,
  182.     CG_G2_CLEANMODELS,
  183.     CG_G2_ANGLEOVERRIDE,
  184.     CG_G2_PLAYANIM,
  185.     CG_G2_GETANIM,
  186.     CG_G2_SETSURFACEONOFF,
  187.     CG_G2_SETROOTSURFACE,
  188.     CG_G2_SETNEWORIGIN,
  189.     CG_G2_GETGLANAME,
  190.     CG_G2_COPYGHOUL2INSTANCE,
  191.     CG_G2_COPYSPECIFICGHOUL2MODEL,
  192.     CG_G2_DUPLICATEGHOUL2INSTANCE,
  193.     CG_G2_REMOVEGHOUL2MODEL,
  194.     CG_G2_ADDSKINGORE,
  195.     CG_G2_CLEARSKINGORE,
  196.     CG_G2_SETGHOUL2MODELFLAGS,
  197.     CG_G2_GETGHOUL2MODELFLAGS,
  198.     CG_G2_SETGHOUL2MODELFLAGSBYINDEX,
  199.     CG_G2_GETGHOUL2MODELFLAGSBYINDEX,
  200.     CG_G2_GETNUMMODELS,
  201.     CG_G2_GETANIMFILENAMEINDEX,
  202.     CG_G2_FINDBOLTINDEX,
  203.     CG_G2_GETBOLTINDEX,
  204.  
  205.     CG_G2_REGISTERSKIN,
  206.     CG_G2_SETSKIN,
  207.     CG_G2_COLLISIONDETECT,
  208.  
  209.     CG_MAT_RESET,
  210.     CG_MAT_CACHE,
  211.     CG_MAT_GET_SOUND,
  212.     CG_MAT_GET_DECAL,
  213.     CG_MAT_GET_DECAL_SCALE,
  214.     CG_MAT_GET_EFFECT,
  215.     CG_MAT_GET_DEBRIS,
  216.     CG_MAT_GET_DEBRIS_SCALE,
  217.  
  218.     CG_CM_TM_CREATE,
  219.     CG_CM_TM_ADDBUILDING,
  220.     CG_CM_TM_ADDSPOT,
  221.     CG_CM_TM_ADDTARGET,
  222.     CG_CM_TM_UPLOAD,
  223.     CG_CM_TM_CONVERT_POS,
  224.  
  225.     // CGenericParser2 (void *) routines
  226.     GP_PARSE,
  227.     GP_PARSE_FILE,
  228.     GP_CLEAN,
  229.     GP_DELETE,
  230.     GP_GET_BASE_PARSE_GROUP,
  231.  
  232.     // CGPGroup (void *) routines
  233.     GPG_GET_NAME,
  234.     GPG_GET_NEXT,
  235.     GPG_GET_INORDER_NEXT,
  236.     GPG_GET_INORDER_PREVIOUS,
  237.     GPG_GET_PAIRS,
  238.     GPG_GET_INORDER_PAIRS,
  239.     GPG_GET_SUBGROUPS,
  240.     GPG_GET_INORDER_SUBGROUPS,
  241.     GPG_FIND_SUBGROUP,
  242.     GPG_FIND_PAIR,
  243.     GPG_FIND_PAIRVALUE,
  244.  
  245.     // CGPValue (void *) routines
  246.     GPV_GET_NAME,
  247.     GPV_GET_NEXT,
  248.     GPV_GET_INORDER_NEXT,
  249.     GPV_GET_INORDER_PREVIOUS,
  250.     GPV_IS_LIST,
  251.     GPV_GET_TOP_VALUE,
  252.     GPV_GET_LIST,
  253.  
  254.     CG_CM_REGISTER_TERRAIN,
  255.     CG_RE_INIT_RENDERER_TERRAIN,
  256.  
  257.     CG_SET_SHARED_BUFFER,
  258.  
  259.     CG_VM_LOCALALLOC,
  260.     CG_VM_LOCALALLOCUNALIGNED,
  261.     CG_VM_LOCALTEMPALLOC,
  262.     CG_VM_LOCALTEMPFREE,
  263.     CG_VM_LOCALSTRINGALLOC,
  264.     
  265.     CG_UI_SETACTIVEMENU,
  266.     CG_UI_CLOSEALL,
  267.  
  268. } cgameImport_t;
  269.  
  270.  
  271. /*
  272. ==================================================================
  273.  
  274. functions exported to the main executable
  275.  
  276. ==================================================================
  277. */
  278.  
  279. typedef enum 
  280. {
  281.     CG_INIT,
  282. //    void CG_Init( int serverMessageNum, int serverCommandSequence, int clientNum )
  283.     // called when the level loads or when the renderer is restarted
  284.     // all media should be registered at this time
  285.     // cgame will display loading status by calling SCR_Update, which
  286.     // will call CG_DrawInformation during the loading process
  287.     // reliableCommandSequence will be 0 on fresh loads, but higher for
  288.     // demos, map restarts, or vid_restarts
  289.  
  290.     CG_SHUTDOWN,
  291. //    void (*CG_Shutdown)( void );
  292.     // oportunity to flush and close any open files
  293.  
  294.     CG_CONSOLE_COMMAND,
  295. //    qboolean (*CG_ConsoleCommand)( void );
  296.     // a console command has been issued locally that is not recognized by the
  297.     // main game system.
  298.     // use Cmd_Argc() / Cmd_Argv() to read the command, return qfalse if the
  299.     // command is not known to the game
  300.  
  301.     CG_DRAW_ACTIVE_FRAME,
  302. //    void (*CG_DrawActiveFrame)( int serverTime, stereoFrame_t stereoView, qboolean demoPlayback );
  303.     // Generates and draws a game scene and status information at the given time.
  304.     // If demoPlayback is set, local movement prediction will not be enabled
  305.  
  306.     CG_CROSSHAIR_PLAYER,
  307. //    int (*CG_CrosshairPlayer)( void );
  308.  
  309.     CG_LAST_ATTACKER,
  310. //    int (*CG_LastAttacker)( void );
  311.  
  312.     CG_KEY_EVENT, 
  313. //    void    (*CG_KeyEvent)( int key, qboolean down );
  314.  
  315.     CG_MOUSE_EVENT,
  316. //    void    (*CG_MouseEvent)( int dx, int dy );
  317.     CG_EVENT_HANDLING,
  318. //    void (*CG_EventHandling)(int type);
  319.  
  320.     CG_POINT_CONTENTS,
  321.  
  322.     CG_GET_LERP_ORIGIN,
  323. //    void CG_LerpOrigin(int num, vec3_t result);
  324.  
  325.     CG_GET_LERP_ANGLES,
  326.     CG_GET_MODEL_SCALE,
  327.     CG_GET_GHOUL2,
  328.     CG_GET_MODEL_LIST,
  329.  
  330.     CG_CALC_LERP_POSITIONS,
  331. //    void CG_CalcEntityLerpPositions(int num);
  332.  
  333.     CG_TRACE,
  334.  
  335.     CG_GET_ORIGIN,        // int entnum, vec3_t origin
  336.     CG_GET_ANGLES,        // int entnum, vec3_t angle
  337.  
  338.     CG_GET_ORIGIN_TRAJECTORY,        // int entnum
  339.     CG_GET_ANGLE_TRAJECTORY,        // int entnum
  340.  
  341.     CG_FX_CAMERASHAKE,
  342.  
  343.     CG_MISC_ENT,
  344.  
  345.     CG_MAP_CHANGE,
  346.  
  347.     CG_VOICE_EVENT,
  348.  
  349. } cgameExport_t;
  350.  
  351. // CG_POINT_CONTENTS
  352. typedef struct
  353. {
  354.     vec3_t        mPoint;            // input
  355.     int            mPassEntityNum;    // input
  356. } TCGPointContents;
  357.  
  358. // CG_GET_LERP_ORIGIN
  359. // CG_GET_LERP_ANGLES
  360. // CG_GET_MODEL_SCALE
  361. typedef struct
  362. {
  363.     int            mEntityNum;        // input
  364.     vec3_t        mPoint;            // output
  365. } TCGVectorData;
  366.  
  367. // CG_TRACE
  368. typedef struct
  369. {
  370.     trace_t mResult;                    // output
  371.     vec3_t    mStart, mMins, mMaxs, mEnd;    // input
  372.     int        mSkipNumber, mMask;            // input
  373. } TCGTrace;
  374.  
  375. // CG_FX_CAMERASHAKE
  376. typedef struct
  377. {
  378.     vec3_t    mOrigin;                    // input
  379.     float    mIntensity;                    // input
  380.     int        mRadius;                    // input
  381.     int        mTime;                        // input
  382. } TCGCameraShake;
  383.  
  384. // CG_MISC_ENT
  385. typedef struct
  386. {
  387.     char    mModel[MAX_QPATH];            // input
  388.     vec3_t    mOrigin, mAngles, mScale;    // input
  389. } TCGMiscEnt;
  390.  
  391. /// CG_CM_TM_CONVERT_POS
  392. typedef struct
  393. {
  394.     vec3_t    mOrigin;                    // input
  395.     int        mWidth, mHeight;            // input
  396.     int        mX, mY;                        // output
  397. } TCGConvertPos;
  398.  
  399.  
  400. #define    MAX_CG_SHARED_BUFFER_SIZE        2048
  401.  
  402.  
  403. #define    CMD_BACKUP            64    
  404. #define    CMD_MASK            (CMD_BACKUP - 1)
  405. // allow a lot of command backups for very fast systems
  406. // multiple commands may be combined into a single packet, so this
  407. // needs to be larger than PACKET_BACKUP
  408.  
  409.  
  410. #define    MAX_ENTITIES_IN_SNAPSHOT    256
  411.  
  412. // snapshots are a view of the server at a given time
  413.  
  414. // Snapshots are generated at regular time intervals by the server,
  415. // but they may not be sent if a client's rate level is exceeded, or
  416. // they may be dropped by the network.
  417. typedef struct {
  418.     int                snapFlags;            // SNAPFLAG_RATE_DELAYED, etc
  419.     int                ping;
  420.  
  421.     int                serverTime;        // server time the message is valid for (in msec)
  422.  
  423.     byte            areamask[MAX_MAP_AREA_BYTES];        // portalarea visibility bits
  424.  
  425.     playerState_t    ps;                        // complete information about the current player at this time
  426.  
  427.     int                numEntities;            // all of the entities that need to be presented
  428.     entityState_t    entities[MAX_ENTITIES_IN_SNAPSHOT];    // at the time of this snapshot
  429.  
  430.     int                numServerCommands;        // text based server commands to execute when this
  431.     int                serverCommandSequence;    // snapshot becomes current
  432. } snapshot_t;
  433.  
  434. enum {
  435.   CGAME_EVENT_NONE,
  436.   CGAME_EVENT_TEAMMENU,
  437.   CGAME_EVENT_SCOREBOARD,
  438.   CGAME_EVENT_EDITHUD
  439. };
  440.  
  441. //----------------------------------------------
  442.